// 导入第三方文件
const gulp = require("gulp")
const cssmin = require("gulp-cssmin")
// const sass = require("gulp-sass")
const uglify = require("gulp-uglify")
const babel = require("gulp-babel")
const htmlmin =require("gulp-htmlmin")
const { removeAllListeners } = require("gulp")
// 打包一个css的文件
const cssHandler = function () {
    return gulp
        .src('./src/css/*.css') //找到原始文件 
        .pipe(cssmin()) //进行css文件压缩
        .pipe(gulp.dest('./dist/css/')) //放入指定的目录内 
}
// 打包sass的文件
// const sassHandler = function () {
//     return gulp
//         .src("./src/sass/*.scss")
//         .pipe(sass())
//         .pipe(cssmin())
//         .pipe(gulp.dest("./dist/sass/"))

// }
// 打包js的文件
// => 如果你只是想打包, 不需要 ES6 转码
// -> 下载 gulp-uglify, 直接导入使用
// => 如果你想 ES6 转码
// -> 下载三个包
//   + gulp-babel
//   + @babel/core
//   + @babel/preset-env
// -> 导入只需要导入 gulp-babel
// -> 使用的时候 babel({ presets: [ '@babel/preset-env' ] })
const jsHandler = function () {
    return gulp
        .src("./src/js/*.js")
        .pipe(babel({ presets: ['@babel/preset-env'] }))//转换成es6
        .pipe(uglify())
        .pipe(gulp.dest("./dist/js/"))
}
// 打包html的文件
const htmlHandler= function(){
    return gulp
        .src("./src/html/*.html")
        .pipe(htmlmin({
            collapseWhitespace : true, //转成一行
            collapseBooleanAttributes : true, // 转成布尔
            removeAttributeQuotes:true,//去掉引号
            removeComments:true,// 删除注释空属性
            removeScriptTypeAttributes :true ,//移出type属性
            removeAllListeners : true,//移出link 和style的默认stype属性
            minifyCSS : true ,//压缩内嵌式css样式

        }))//压缩
        .pipe(gulp.dest('./dist/html/'))
}
// 导出语法
module.exports = {
    cssHandler,
    // sassHandler,
    jsHandler,
    htmlHandler
}